import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex);

//定义一个容器

let store=new Vuex.Store({

  //定义一个状态
  state:{
    count:120
  },

  getters:{

    //类似于我们组件中的计算属性
    filterCount(state){
      return state.count >= 130 ? 130 : state.count;
    }
  },

  mutations:{

    addIncrement(state,obj){

      state.count+=obj.n;

    },

    deIncrement(state,obj){

      state.count-=obj.m;
    }

  },

  actions:{

    addAction(context){

      setTimeout(function (){

        //console.log(context);//context是一个对象，这个对象里面有commit、dispatch等方法
        context.commit("addIncrement",{n:5});

        //通过commit对象的dispatch方法可以在一个action中触发另一个action
        context.dispatch("textAction",{test:"测试"})

      },1000)
    },

    textAction(context,test){
      //console.log(test)
    }
  }

})
export default store;
